package org.fjsei.yewu.index;

import graphql.schema.DataFetchingEnvironment;
import lombok.Data;
import lombok.NoArgsConstructor;
import md.specialEqp.RegState_Enum;
import md.specialEqp.UseState_Enum;
import md.specialEqp.inspect.Detail;
import md.specialEqp.type.Pipeline;
import md.specialEqp.type.PipingUnitCommon;
import org.fjsei.yewu.filter.Uunode;
import org.fjsei.yewu.util.Tool;
import org.springframework.data.elasticsearch.annotations.Document;

import java.time.LocalDate;
import java.util.List;
import java.util.UUID;


/**特检头条的ES模型。
 * 实际后端graphQL对于PipingUnitCommon没有规定具体的字段？ 多种模型都能通用的查询connection[]<></>列表？
 * 后端不会抛出异常class NewsEs implements PipingUnitCommon,但是前端Relay看出错，可实际还是后端接口层面的错误捕捉环节做的，就是没有后端consol找到错误信息的！
 * */
@Document(indexName="bid", createIndex=false)
@Data
@NoArgsConstructor
public class NewsEs implements PipingUnitCommon, Uunode {
    //python那端插入默认_id是字符串的，无法被识别转uuid！需对方直接插入UUID？
    protected UUID id;

    private String  url;
    private String  title;
    private LocalDate pdate;

    private  List<String> tags;       //Detail这里实际只有[ID!]可用字段 ? UunodeEs
    //private Detail  det;
    //替代 上传国家平台的 管道单元名称， =组合的关键字。
    private String  chn;
    private String  site;
    //虽然HS注解 @GenericField 默认"doc_values": false,但是可以读出来，不能被用于聚合、排序以及脚本操作！
    private LocalDate crDate;

    public String getId(DataFetchingEnvironment env) {
        return Tool.toGlobalId(this.getClass().getSimpleName(), this.id);
    }
}

